Плохо! Плохо!:  0
Показано с 1 по 2 из 2

Тема: [MZ] Phileas_PlayerMovementInversion

  1. #1
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    628
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию [MZ] Phileas_PlayerMovementInversion

    Название плагина: Phileas_PlayerMovementInversion

    Автор: Phileas

    Версия: 1.1.1 для MZ

    Дата выхода:
    1.0.0 - 11.08.2023
    1.1.0 - 12.08.2023
    1.1.1 - 13.08.2023

    Описание плагина:
    Плагин предоставляет единственную команду - switchInversion.
    С помощью неё вы можете включить и выключить горизонтальную и вертикальную инверсии.

    Как это выглядит:


    Код:
    Спойлер Версия 1.1.1:
    Код:
    //=============================================================================
    // Phileas_PlayerMovementInversion.js
    //=============================================================================
    // [Update History]
    // 2023.August.11 Ver1.0.0 First Release
    // 2023.August.12 Ver1.1.0 Added save state parameter
    // 2023.August.13 Ver1.1.1 The inversion state is reset when a new game starts
    
    /*:
     * @target MZ
     * @plugindesc Inverts the player's movement control
     * @author Phileas
     *
     * @param saveState
     * @text Save state
     * @type boolean
     * @default true
     * @desc If true, the inversion state will be restored when the save is loaded.
     *
     * @command switchInversion
     * @text Switch the inversion
     * @desc Enables or disables movement inversion.
     *
     * @arg horizontalInversion
     * @text Horizontal inversion
     * @type boolean
     * @desc If this is on, the movement will be inverted horizontally.
     * @default false
     *
     * @arg verticalInversion
     * @text Vertical inversion
     * @type boolean
     * @desc If this is on, the movement will be inverted vertically.
     * @default false
     * 
     * @help
     * The plugin provides a single command - switchInversion.
     * You can use it to enable and disable horizontal and vertical inversions.
     *
     * [License]
     * This plugin is released under MIT license.
     * http://opensource.org/licenses/mit-license.php
     *
     * This means that you can freely use the plugin in non-commercial and commercial games and even edit it.
     * But be sure to include me in the credits!
     */
     
    /*:ru
     * @target MZ
     * @plugindesc Инверсирует управление движением игрока
     * @author Phileas
     *
     * @param saveState
     * @text Сохранять состояние
     * @type boolean
     * @default true
     * @desc Если true, состояние инверсии будет восстаналиваться при загрузке сохранения.
     *
     * @command switchInversion
     * @text Switch the inversion
     * @desc Enables or disables movement inversion.
     *
     * @arg horizontalInversion
     * @text Horizontal inversion
     * @type boolean
     * @desc Если этот параметр включён, перемещение будет перевёрнуто по горизонтали.
     * @default false
     *
     * @arg verticalInversion
     * @text Vertical inversion
     * @type boolean
     * @desc Если этот параметр включен, перемещение будет перевернуто по вертикали.
     * @default false
     * 
     * @help
     * Плагин предоставляет единственную команду - switchInversion.
     * С помощью неё вы можете включить и выключить горизонтальную и вертикальную инверсии.
     *
     * [License]
     * Этот плагин распространяется по лицензии MIT.
     * http://opensource.org/licenses/mit-license.php
     *
     * Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
     * Но обязательно укажите меня в титрах!
     */
    
    (function() {
    
    //--------MY CODE:
        var parameters = PluginManager.parameters("Phileas_PlayerMovementInversion");
        var saveState = parameters["saveState"] == "true";
        var horizontalInversion = false;
        var verticalInversion = false;
        
        PluginManager.registerCommand("Phileas_PlayerMovementInversion", "switchInversion", switchInversion);
    
        function switchInversion(params) {
            horizontalInversion = params["horizontalInversion"] == "true";
            verticalInversion = params["verticalInversion"] == "true";
        }
    
    //--------CHANGED CORE:
    
        const Origin_move = Game_Player.prototype.moveByInput;
        Game_Player.prototype.moveByInput = function() {
            if (horizontalInversion) {
                if (Input._dir4 == 4) {
                    Input._dir4 = 6;
                }
                else if (Input._dir4 == 6) {
                    Input._dir4 = 4;
                }
            }
            
            if (verticalInversion) {
                if (Input._dir4 == 8) {
                    Input._dir4 = 2;
                }
                else if (Input._dir4 == 2) {
                    Input._dir4 = 8;
                }
            }
    
            Origin_move.call(this);
        };
        
        const Origin_makeSaveContents = DataManager.makeSaveContents;
        DataManager.makeSaveContents = function() {
            let contents = Origin_makeSaveContents.call(this);
            if (saveState) {
                contents.phileasHorizontalInversion = horizontalInversion;
                contents.phileasVerticalInversion = verticalInversion;
            }
            
            return contents;
        };
        
        const Origin_extractSaveContents = DataManager.extractSaveContents;
        DataManager.extractSaveContents = function(contents) {
            Origin_extractSaveContents.call(this, contents);
            if (saveState) {
                horizontalInversion = contents.phileasHorizontalInversion || false;
                verticalInversion = contents.phileasVerticalInversion || false;
            }
        };
        
        const Origin_setupNewGame = DataManager.setupNewGame;
        DataManager.setupNewGame = function() {
            Origin_setupNewGame.call(this);
            horizontalInversion = false;
            verticalInversion = false;
        };
    }());

    Или можно скачать файл тут.

    Лицензия
    Этот плагин распространяется по лицензии MIT.
    Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
    Но обязательно укажите меня в титрах!

    Совместимость:
    Пишите мне, если возникнут проблемы.
    Последний раз редактировалось Phileas; 13.08.2023 в 16:13.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

  2. #2
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    628
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию

    Обновление до версии 1.1.1!
    Если соответствующий параметр плагина включён, состояние инверсии будет восстанавливаться при загрузке сохранения.
    Состояние инверсии обнуляется при начале новой игры.
    Последний раз редактировалось Phileas; 13.08.2023 в 15:54.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[MZ] Phileas_PlayerMovementInversion